package
{
	public interface ILRAnimator
	{
		function initialize(mgr:LRCommanderMgr):void;


		function get animationState():String;
		// The animation state must be one of: "Running", "Paused". "Stopping", or "Stopped".
		
		function startAnimation():void;

		//
		// Starting a "Stopped" animation causes the animator to initialize and run an animation indefinitely.
		// Starting a "Paused" animation resumes the animator from the point that it was paused.
		// Starting a "Running" or "Stopping" animation has no effect.
		//

		
		function pauseAnimation():void;

		//
		// Pausing an animation causes all motion to stop exactly as is.  Call startAnimation to resume from a pause.
		//

		
		function stopAnimation(stopImmediately:Boolean = false):void;

		//
		// Stopping a "Running" or "Paused" animation causes it to enter the "Stopping" state and play any final animation (i.e. a fade out).
		// When the final animation is complete, the animator transitions to the "Stopped" state.  If stopImmediately is specified
		// then the "Stopping" state is bypassed and the animator will immediately stop all animation, clear the animation surface, and
		// transition to the "Stopped" state.
		//
		// Calling stopAnimation while the animator is in the "Stopping" state has no effect unless stopImmediately is set to true.
		//
		// Calling stopAnimation while the animator is in the "Stopped" state has no effect.
		// 
		// If the animation surface is resized, the manager will stop and restart the animator.  The animator does not need to watch for
		// resize events.
		//
	}
}